package org.NooLab.glue.subscription;

import java.util.Vector;

import org.NooLab.compare.utilities.math.DistanceControlProperties;

public interface FuturesIntf {

	public FutureIntf create( DistanceControlProperties distanceCtrl );
	
	/** returns a GUID if successful, which serves as a pointer */
	abstract public String add( FutureIntf subscription) ;
	
	/**  */
	abstract public int publish( String subguid ) ;
	
	abstract public int unpublish( String subguid ) ;
	
	public int remove( String subguid ) ;

	public int remove( long instanceID , int index ) ;
	
	public int removeAll( long instanceID ) ;

	public Vector<Future> getFuturesById( long instanceID, int type) ;
	public Vector<Future> getFuturesById( long instanceID);
	
	public int size();
	public int size(long instanceID);
	public int size( int type , long instanceID);

	 
}
